package myreflect5;

import java.lang.reflect.InvocationTargetException;

public class ReflectDemo2 {
    public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException {
        // Object invoke(object obj，object...args):运行方法
        // 参数一:用obj对象调用该方法
        // 参数二:调用方法的传递的参数(如果没有就不写)
        // 返回值:方法的返回值(如果没有就不写)

        // 1.获取class对象
         Class<?> clazz = Class.forName("myreflect5.Student");
        // 2.获取Method对象 function4
        // Method method = clazz.getMethod("function4", String.class);
        // 3.运行
        // 3.1创建一个Student对象，当做方法的调用者
        // Student student = (Student) clazz.newInstance();
        // 3.2运行方法,打印
        // Object result = method.invoke(student, "zhangsan");
        // System.out.println(result);
        System.out.println(Class.forName("myreflect5.Student")
                .getMethod("function4", String.class)
                .invoke((Student) clazz.newInstance(), "zhangsan"));
    }
}
